
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	<link rel=stylesheet href='include/hoj.css' type='text/css'>
</head>
<body>
<center>
<div style="width:90%; text-align:left">
<img src="image/logo.png"/>
</div>
<table width=96%> 
	<tr align="center" class='hd' valign="top">
				<th><a href="faqs.php">F.A.Qs</a></th>
		<th><a href="./bbs.php">Web Board</a></th>
		<th><a href="./">Home</a></th>
		<th><a href="./problemset.html">ProblemSet</a></th>
		<th><a href="./status.php">Status</a></th>
		<th><a href="./ranklist.php">Ranklist</a></th>
		<th><a href="./contest.php">Contest</a></th>
		<th><a href=loginpage.php>Login</a></th><th><a href=registerpage.php>Register</a></th>	</tr>
</table>
</center>
<center>
<div class="notice">
	<div>
		<B>Notice:</B>鉴于种种原因，本OJ自下周星期一（3月5号）开始不再全面开放，请各位做好善后事宜，谢谢合作。	</div>
</div>
</center>
</div>
<title>Problem 2164. -- 采矿 -- 衡阳八中OJ离线版-2012-02-29</title><center><h2>2164: 采矿</h2><span class=green>Time Limit: </span>20 Sec&nbsp;&nbsp;<span class=green>Memory Limit: </span>259 MB<br><span class=green>Submit: </span>10&nbsp;&nbsp;<span class=green>Solved: </span>6<br>[<a href='submitpage.php?id=2164'>Submit</a>][<a href='problemstatus.php?id=2164'>Status</a>][<a href='bbs.php?id=2164'>Discuss</a>]</center><h2>Description</h2><div class=content><p>浩浩荡荡的cg大军发现了一座矿产资源极其丰富的城市，他们打算在这座城市实施新的采矿战略。这个城市可以看成一棵有n个节点的有根树，我们把每个节点用1到n的整数编号。为了方便起见，对于任何一个非根节点v，它任何一个祖先的编号都严格小于v。树上的每个节点表示一个矿点，每条边表示一条街道。作为cg大军的一个小队长，你拥有m个部下。你有一张二维的动态信息表，用Ti,j表示第i行第j列的数据。当你被允许开采某个区域时，你可以将你的部下分配至各个矿点。在第i个矿点安排j个人可以获得Ti,j单位的矿产。允许开采的区域是这样描述的：给你一对矿点(u,v)，保证v是u的祖先（这里定义祖先包括u本身）；u为你控制的区域，可以在以u为根的子树上任意分配部下；u到v的简单路径（不包括u但包括v，若u=v则包括u）为探险路径，在该路径上你可以选择至多一个矿点安排部下。你这次开采的收益为安排有部下的矿点的收益之和。</p></div><h2>Input</h2><div class=content><p>输入的第一行包含5个正整数n、m、A、B、Q。n为矿点的个数，m为部下的数量。A、B、Q是与动态信息表有关的数据。第二行包含n-1个正整数，第i个数为Fi+1，表示节点i+1的父亲。接下来需要你用下文的方法依次生成n组数据，每组数据共m个。其中第i组的m个数据为信息表中第i行的m个数据。紧接着一行包含一个正整数C，表示事件的数量。最后给出C行，每行描述一个事件。每个事件会先给出一个0或1的整数。如果该数为0，则后面有一个正整数p，表示动态信息表有更新，你需要生成一组m个数据，来替换信息表中第p行的m个数据。如果该数为1，则后面有两个正整数u、v，表示出现了一个你可以开采的区域，你需要回答这次开采的收益。同一行的各个数之间均用一个空格隔开，没有多余的空格和换行。数据的生成方法如下：每次生成一组m个从小到大排列的数据，替换动态信息表的一行。其中，从小到大第j个数替换信息表中第j列的数。调用以下代码m次并排序得到一组数据。（注意可能会出现重复的数）函数GetInt A&larr;((A xor B)+(B div X)+(B * X))and Y B&larr;((A xor B)+(A div X)+(A * X))and Y 返回(A xor B)mod Q 其中A、B、Q均用32位有符号整数保存（C/C++的signed long int类型，pascal的longint类型），X=216（2的16次方），Y=231-1(2的31次方-1)，xor为位异或运算，div为整除运算，and为位且运算，mod为取余运算。由于只保留了低31位，易得我们不用考虑数据的溢出问题。（注意每次A和B都会被改变）</p></div><h2>Output</h2><div class=content><p>对于每个开采事件（开头为1的事件），输出一行一个整数，为每次的收益。</p></div><h2>Sample Input</h2>
			<div class=content><span class=sampledata>10 5 1 2 10<br />
1 1 3 3 4 4 6 6 9<br />
4<br />
1 6 3<br />
1 9 1<br />
0 1<br />
1 1 1</span></div><h2>Sample Output</h2>
			<div class=content><span class=sampledata>11<br />
9<br />
12<br />
【样例说明】<br />
最初的信息表如下<br />
	1	2	3	4	5<br />
1	0	1	1	2	2<br />
2	0	5	7	7	9<br />
3	1	2	3	4	5<br />
4	0	1	2	4	5<br />
5	2	4	7	8	8<br />
6	0	2	3	8	9<br />
7	1	3	5	6	8<br />
8	3	3	3	7	8<br />
9	0	1	2	3	9<br />
10	0	0	1	4	4<br />
变化后的第1行为<br />
1	1	1	1	4	7<br />
第一次开采可以在矿点6、8、9、10任意安排，可以在矿点3或4中选取一个安排开采。一种最优安排是在矿点6安排4人，在矿点8安排1人。第二次开采可以在矿点9安排，可以在矿点6、4、3、1中选择一个安排。一种最优安排是在矿点9安排1人，在矿点6安排4人。</span></div><h2>HINT</h2>
			<div class=content><p><p>有50%的数据，对于满足2&le;i&le;n的整数i，Fi=i-1。这些数据中有40%的数据（即所有数据的20%）满足n&le;500，m&le;20，C&le;500。除上述数据，另有40%的数据满足n&le;500，m&le;20，C&le;500。对于100%的数据1&le;n&le;20000，1&le;m&le;50，1&le;C&le;2000。对于满足2&le;i&le;n的整数i，1&le;Fi＜i。1&le;A,B&le;231-1，1&le;Q&le;10000。</p></p></div><h2>Source</h2>
			<div class=content><p><a href='problemset.html?search=By 陈许旻'>By 陈许旻</a></p></div><center>[<a href='submitpage.php?id=2164'>Submit</a>][<a href='problemstatus.php?id=2164'>Status</a>][<a href='bbs.php?id=2164'>Discuss</a>]</center>﻿<br>

<a href="./"><span class=red>HOME</span></a>
<a href="javascript:history.go(-1)"><span class=red>Back</span></a>

<hr>
<center>
	<div class="footer">
			<a href=setlang.php?lang=ko>한국어</a>&nbsp;
		<a href=setlang.php?lang=cn>中文</a>&nbsp;
		<a href=setlang.php?lang=fa>فارسی</a>&nbsp;
		<a href=setlang.php?lang=en>English</a>&nbsp;
		<a href=setlang.php?lang=th>ไทย</a>
	<br>		<div>版权所有 &copy;2008-2012 WaterPark Organization. | <script src="http://s21.cnzz.com/stat.php?id=2982771&web_id=2982771" language="JavaScript"></script>
</div>
		<div>Based on opensource project <a href="http://hustoj.googlecode.com">hustoj</a>.</div>
	</div>
</center>
</body>
</html>
